IAM Access Analyzer で未使用のアクセス権を組織(Organizations)全体で検出してみた
組織を対象にして、未使用のアクセス権(許可、ロール、アクセス権)をIAM Access Analyzerで検出する際の、組織の委任設定と未使用のIAM Access Analyzerの有効化するの手順と注意点をまとめました。
- IAM Access Analyzer の組織への委任
- 未使用のIAM Access Analyzer の有効化
- 未使用のアクセス権(許可、ロール、アクセス権)の検出
- 未使用IAM リソースの削除またアーカイブルールの設定
を行います。
Control Tower が有効化されている環境での使用を想定しており、以下のようなアカウント構成としています。
- 管理アカウント(AWS Organizationsの管理アカウント)
- Access Analyzer 委任先アカウント(Control Tower の監査アカウント(Audit)を使用します)
- 未使用ロール検出アカウント(組織配下のアカウント(Audit 以外))
※注意
未使用のIAM Access Analyzerは通常のIAM Access Analyzerとは違い有料の機能となります。
組織(Organizations)に対して未使用のAccess Analyzerを有効にした場合、組織配下のIAMユーザ、またロールがスキャンの対象となり、大規模な組織の場合は多くのユーザー、ロールがスキャンの対象となり意図した以上に課金がかかる可能性があります。事前にスキャン対象となるIAMユーザ、ロールなどの総数を見積もりの上で実施されることをお勧めします。対象となるスキャン総数の抽出方法はこちらでご案内をしています。
https://dev.classmethod.jp/articles/organizations-iam-access-analyzer-scan-calc/
前提条件、事前準備
- AWS Organizations の機能を使用します
- AWS Control Tower 配下での設定を想定して 監査アカウント(Audit)に対して、IAM Access Analyzerの委任を行います。 (Control Tower の有効化は必須ではありません)
- 1つのリージョン(今回は東京)でのみ有効
- 未使用のアクセス分析の場合、アナライザーの検出結果はリージョンによって変わりませんので、1つのリージョンでのみ作成します
IAM Access Analyzer の組織への委任
IAM>Access Analyzer>アナライザーの設定
https://ap-northeast-1.console.aws.amazon.com/access-analyzer/home?region=ap-northeast-1#/settings
委任された管理者を追加
設定が正常に行われると「委任された管理者 - オプション」に委任先のアカウントIDが表示されます。
未使用のIAM Access Analyzer の有効化
委任先のアカウントにログインして、IAM Access Analyzerのコンソールで未使用のIAM Access Analyzer の有効化を行います
IAM >Access Analyzer >アナライザーの設定
https://ap-northeast-1.console.aws.amazon.com/access-analyzer/home?region=ap-northeast-1#/settings
この際、委任された管理者 - オプション がログイン中のアカウント(現在のアカウント)であることを確認してください
アナライザーを作成を選択します
- 未使用のアクセス分析 を選択します
- 名前、追跡期間(デフォルトは90日)を入力します
- 現在の組織を選択します。
「アナライザーを作成」を押下します。
未使用のIAM Access Analyzerの検出
正常にアナライザーの作成が行われたらスキャンが実施されます。アカウント数にもよりますが、検出結果の確認まで、~1日程度かかりますので、スキャンの完了までお待ちください
AWSコンソールより 未使用のアクセスを表示し、対象を確認します。
IAM >Access Analyzer >未使用のアクセス
https://ap-northeast-1.console.aws.amazon.com/access-analyzer/home?region=ap-northeast-1#/unused-access-findings
スキャンが終わっていると、未使用のアクセスが一覧に表示されます
未使用 リソースへの対応
対象リソースを削除する
検出したリソースが使用していないロールまたユーザーなどが明らかであれば、対象のカウントの管理者に連絡し、削除を依頼してください。
削除が行われた場合は、検出結果は対処済みとなります。
対象リソースの検出をアーカイブする
検出されたリソースについて、必要な権限の場合は検出結果をアーカイブします 一覧表示より、アーカイブしたい検出結果を選択します。
画面下部非表示されている詳細より「アーカイブ」選択します
ステータスが[アーカイブ済]となります。
対象リソースの検出をアーカイブルールを使って、自動アーカイブする
アナライザーの設定より対象とするアナライザーを選択します
IAM > Access Analyzer > アナライザーの設定
https://ap-northeast-1.console.aws.amazon.com/access-analyzer/home?region=ap-northeast-1#/settings
アーカイブルールを作成を押下します
名前、またルールを設定します。
ここでは、ContorlTower関連のロールをアーカイブするため「aws-controltower-」の検出を自動アーカイブするルールを設定します。
条件に
- Filter key :リソース
- Condition :次を含む
- Value: :role/aws-controltower-
補足 複数のアカウントを対象とするため、条件を次を含むにしています。
を設定します。
ルールの条件に一致する検出結果が絞り込まれて表示されるので「ルールを作成」を選択します。
なお、表示されている既存の結果をアーカイブするには「アクティブな検出結果を保存およびアーカイブ」を選択してください
対象となったリソースがアーカイブ済みとなり。また新規の検出結果がアーカイブされます。
参考情報
AWS Identity and Access Management Access Analyzer の結果の使用開始 - AWS Identity and Access Management
IAM Access Analyzer の最新情報: 未使用のアクセスを検出し、デプロイ前にポリシーを確認する | Amazon Web Services
新機能 – AWS Organizations での AWS IAM Access Analyzer 使用 | Amazon Web Services
https://dev.classmethod.jp/articles/update-iaa-for-org/
https://dev.classmethod.jp/articles/script-to-create-delete-all-regions-of-iam-access-analyzer/